code: func (db *Database) Begin() *Database {
  	db = db.clone()
  	// Initialize transaction
  	var tx *sql.Tx
  	var err error
  	if tx, err = db.db.(*sql.DB).Begin(); err != nil {
  		db.printLog(err.Error())
  		return nil
  	}
  	// backup db.db into db.connection
  	db.connection = db.db.(*sql.DB)
  	// replace db.db with the transaction
  	db.db = tx
  	return db
  }
docs: // Transactions
  // Begin initialize a transaction
  // panics if begin has been already called
  // Returns nil on error (if logger is enabled write error on log)