code: def persist_experiment(experiment):
      
      from benchbuild.utils.schema import Experiment, Session
  
      session = Session()
  
      cfg_exp = experiment.id
      LOG.debug("Using experiment ID stored in config: %s", cfg_exp)
      exps = session.query(Experiment).filter(Experiment.id == cfg_exp)
      desc = str(CFG["experiment_description"])
      name = experiment.name
  
      if exps.count() == 0:
          newe = Experiment()
          newe.id = cfg_exp
          newe.name = name
          newe.description = desc
          session.add(newe)
          ret = newe
      else:
          exps.update({'name': name, 'description': desc})
          ret = exps.first()
  
      try:
          session.commit()
      except IntegrityError:
          session.rollback()
          persist_experiment(experiment)
  
      return (ret, session)
docs: Persist this experiment in the benchbuild database.
  
      Args:
          experiment: The experiment we want to persist.