<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_transaction(self, project_id, transaction_options=None):
 """Perform a ``beginTransaction`` request. :type project_id: str :param project_id: The project to connect to. This is usually your project name in the cloud console. :type transaction_options: ~.datastore_v1.types.TransactionOptions :param transaction_options: (Optional) Options for a new transaction. :rtype: :class:`.datastore_pb2.BeginTransactionResponse` :returns: The returned protobuf response object. """

        request_pb = _datastore_pb2.BeginTransactionRequest()
        return _rpc(
            self.client._http,
            project_id,
            "beginTransaction",
            self.client._base_url,
            request_pb,
            _datastore_pb2.BeginTransactionResponse,
        )