code: def mutate_rows(self, rows, retry=DEFAULT_RETRY):
          
          retryable_mutate_rows = _RetryableMutateRowsWorker(
              self._instance._client,
              self.name,
              rows,
              app_profile_id=self._app_profile_id,
              timeout=self.mutation_timeout,
          )
          return retryable_mutate_rows(retry=retry)
docs: Mutates multiple rows in bulk.
  
          For example:
  
          .. literalinclude:: snippets_table.py
              :start-after: [START bigtable_mutate_rows]
              :end-before: [END bigtable_mutate_rows]
  
          The method tries to update all specified rows.
          If some of the rows weren't updated, it would not remove mutations.
          They can be applied to the row separately.
          If row mutations finished successfully, they would be cleaned up.
  
          Optionally, a ``retry`` strategy can be specified to re-attempt
          mutations on rows that return transient errors. This method will retry
          until all rows succeed or until the request deadline is reached. To
          specify a ``retry`` strategy of "do-nothing", a deadline of ``0.0``
          can be specified.
  
          :type rows: list
          :param rows: List or other iterable of :class:`.DirectRow` instances.
  
          :type retry: :class:`~google.api_core.retry.Retry`
          :param retry:
              (Optional) Retry delay and deadline arguments. To override, the
              default value :attr:`DEFAULT_RETRY` can be used and modified with
              the :meth:`~google.api_core.retry.Retry.with_delay` method or the
              :meth:`~google.api_core.retry.Retry.with_deadline` method.
  
          :rtype: list
          :returns: A list of response statuses (`google.rpc.status_pb2.Status`)
                    corresponding to success or failure of each row mutation
                    sent. These will be in the same order as the `rows`.