code: def update_datatype(self, datatype, w=None, dw=None, pw=None,
                          return_body=None, timeout=None,
                          include_context=None):
          
          _validate_timeout(timeout)
  
          with self._transport() as transport:
              return transport.update_datatype(datatype, w=w, dw=dw, pw=pw,
                                               return_body=return_body,
                                               timeout=timeout,
                                               include_context=include_context)
docs: Sends an update to a Riak Datatype to the server. This operation is not
          idempotent and so will not be retried automatically.
  
          :param datatype: the datatype with pending updates
          :type datatype: :class:`~riak.datatypes.Datatype`
          :param w: the write quorum
          :type w: integer, string, None
          :param dw: the durable write quorum
          :type dw: integer, string, None
          :param pw: the primary write quorum
          :type pw: integer, string, None
          :param timeout: a timeout value in milliseconds
          :type timeout: int
          :param include_context: whether to return the opaque context
            as well as the value, which is useful for removal operations
            on sets and maps
          :type include_context: bool
          :rtype: tuple of datatype, opaque value and opaque context