<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_datatype(self, datatype, w=None, dw=None, pw=None, return_body=None, timeout=None, include_context=None):
 """ 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 """

        _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)