<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_run(cmd, project, exp, grp):
 """ Create a new 'run' in the database. This creates a new transaction in the database and creates a new run in this transaction. Afterwards we return both the transaction as well as the run itself. The user is responsible for committing it when the time comes. Args: cmd: The command that has been executed. prj: The project this run belongs to. exp: The experiment this run belongs to. grp: The run_group (uuid) we blong to. Returns: The inserted tuple representing the run and the session opened with the new run. Don't forget to commit it at some point. """

    from benchbuild.utils import schema as s

    session = s.Session()
    run = s.Run(
        command=str(cmd),
        project_name=project.name,
        project_group=project.group,
        experiment_name=exp,
        run_group=str(grp),
        experiment_group=project.experiment.id)
    session.add(run)
    session.commit()

    return (run, session)