<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(self, **params):
 """ Sends locally staged mutations to Riak. :param w: W-value, wait for this many partitions to respond before returning to client. :type w: integer :param dw: DW-value, wait for this many partitions to confirm the write before returning to client. :type dw: integer :param pw: PW-value, require this many primary partitions to be available before performing the put :type pw: integer :param return_body: if the newly stored object should be retrieved, defaults to True :type return_body: bool :param include_context: whether to return the new opaque context when `return_body` is `True` :type include_context: bool :param timeout: a timeout value in milliseconds :type timeout: int :rtype: a subclass of :class:`~riak.datatypes.Datatype` """

        if not self.modified:
            raise ValueError("No operation to perform")

        params.setdefault('return_body', True)
        self.bucket._client.update_datatype(self, **params)
        self.clear()

        return self