code: public static <M extends MessageOrBuilder> M copyTimestamp(final M sourceMessageOrBuilder, final M targetMessageOrBuilder) throws CouldNotPerformException {
          return TimestampProcessor.updateTimestamp(TimestampProcessor.getTimestamp(sourceMessageOrBuilder, TimeUnit.MICROSECONDS), targetMessageOrBuilder , TimeUnit.MICROSECONDS);
      }
docs: Method copies the timestamp field of the source message into the target message.
  In case of an error the original message is returned.
  
  @param <M>              the message type of the message to update.
  @param sourceMessageOrBuilder the message providing a timestamp.
  @param targetMessageOrBuilder the message offering a timestamp field to update.
  
  @return the updated message or the original one in case of errors.
  
  @throws CouldNotPerformException is thrown in case the copy could not be performed e.g. because of a missing timestamp field.