code: def _begin(self, retry_id=None):
          
          if self.in_progress:
              msg = _CANT_BEGIN.format(self._id)
              raise ValueError(msg)
  
          transaction_response = self._client._firestore_api.begin_transaction(
              self._client._database_string,
              options_=self._options_protobuf(retry_id),
              metadata=self._client._rpc_metadata,
          )
          self._id = transaction_response.transaction
docs: Begin the transaction.
  
          Args:
              retry_id (Optional[bytes]): Transaction ID of a transaction to be
                  retried.
  
          Raises:
              ValueError: If the current transaction has already begun.