Update the signal with new data. This method does not return the signal value as computing it
may be expensive. We retrieve the signal value only when we need it by TimedSignal.value().
The new arrival time should be after all previous times; otherwise, the behavior is not
defined. That is, no duplicated timestamps, no backward timestamps.