code: func (adapter *Adapter) Begin() (grimoire.Adapter, error) {
  	var tx *sql.Tx
  	var savepoint int
  	var err error
  
  	if adapter.Tx != nil {
  		tx = adapter.Tx
  		savepoint = adapter.savepoint + 1
  		_, _, err = adapter.Exec("SAVEPOINT s"+strconv.Itoa(savepoint)+";", []interface{}{})
  	} else {
  		tx, err = adapter.DB.Begin()
  	}
  
  	return &Adapter{
  		Config:    adapter.Config,
  		Tx:        tx,
  		savepoint: savepoint,
  	}, err
  }
docs: // Begin begins a new transaction.