<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):
 """Update this cluster. For example: .. literalinclude:: snippets.py :start-after: [START bigtable_update_cluster] :end-before: [END bigtable_update_cluster] .. note:: Updates the ``serve_nodes``. If you'd like to change them before updating, reset the values via .. code:: python cluster.serve_nodes = 8 before calling :meth:`update`. :type location: :str:``CreationOnly`` :param location: The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form ``projects/<project>/locations/<zone>``. :type serve_nodes: :int :param serve_nodes: The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance. :rtype: :class:`Operation` :returns: The long-running operation corresponding to the update operation. """

        client = self._instance._client
        # We are passing `None` for second argument location.
        # Location is set only at the time of creation of a cluster
        # and can not be changed after cluster has been created.
        return client.instance_admin_client.update_cluster(
            self.name, self.serve_nodes, None
        )