<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _begin(self, retry_id=None):
 """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. """

        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