code: func (c *Context) NewTxn(context.Context) error {
  	if c.Store == nil {
  		return errors.New("store is not set")
  	}
  	if c.txn.Valid() {
  		err := c.txn.Commit(c.ctx)
  		if err != nil {
  			return errors.Trace(err)
  		}
  	}
  
  	txn, err := c.Store.Begin()
  	if err != nil {
  		return errors.Trace(err)
  	}
  	c.txn.Transaction = txn
  	return nil
  }
docs: // NewTxn implements the sessionctx.Context interface.