code: def assign(
      self,
      value: typing.Union[DatetimeVal, datetime, StringifyValue],
      *,
      wait: bool = False,
  ):
      verify_type(
          "value", value, (DatetimeVal, datetime, StringifyValue)
      )
      if isinstance(value, (DatetimeVal, StringifyValue)):
          value = value.value
      else:
          value = value.replace(
              microsecond=1000 * int(value.microsecond / 1000)
          )
      with self._container.lock():
          self._enqueue_operation(
              self.create_assignment_operation(self._path, value),
              wait=wait,
          )
  
file_path: neptune-client/src/neptune/attributes/atoms/datetime.py
imports: import typing
  from datetime import datetime
  from neptune.attributes.atoms.copiable_atom import CopiableAtom
  from neptune.internal.container_type import ContainerType
  from neptune.internal.operation import AssignDatetime
  from neptune.internal.types.stringify_value import StringifyValue
  from neptune.internal.utils import verify_type
  from neptune.types.atoms.datetime import Datetime
label_desc: Use image node_id 3 for calling the Datetime obj's underlying member method code with example usage: obj.assign(value) without return types