code: func (tx *Tx) Prepare(q string) (*Stmt, error) {
  	tx.stmtsMu.Lock()
  	defer tx.stmtsMu.Unlock()
  
  	stmt, err := prepareStmt(tx.db, q)
  	if err != nil {
  		return nil, err
  	}
  	tx.stmts = append(tx.stmts, stmt)
  
  	return stmt, nil
  }
docs: // Prepare creates a prepared statement for use within a transaction.
  //
  // The returned statement operates within the transaction and can no longer
  // be used once the transaction has been committed or rolled back.
  //
  // To use an existing prepared statement on this transaction, see Tx.Stmt.