code: func (adapter *Adapter) Exec(statement string, args []interface{}, loggers ...grimoire.Logger) (int64, int64, error) {
  	var res sql.Result
  	var err error
  
  	start := time.Now()
  	if adapter.Tx != nil {
  		res, err = adapter.Tx.Exec(statement, args...)
  	} else {
  		res, err = adapter.DB.Exec(statement, args...)
  	}
  	go grimoire.Log(loggers, statement, time.Since(start), err)
  
  	if err != nil {
  		return 0, 0, adapter.Config.ErrorFunc(err)
  	}
  
  	lastID, _ := res.LastInsertId()
  	rowCount, _ := res.RowsAffected()
  
  	return lastID, rowCount, nil
  }
docs: // Exec performs exec operation.