code: function(cb) {
        //console.log('tx running for ' + scope);
        // me.not_ready_ = true;
        // transaction should be active now
        var tx = me.mu_tx_.getTx();
        /**
         * @param {*} result result.
         * @param {boolean=} opt_is_error true if request has error.
         */
        var resultCallback2 = function(result, opt_is_error) {
          me.s_request_tx = tx; // so that we can abort it.
          if (opt_is_error) {
            goog.log.finer(me.logger, rq_label + ' ERROR');
            df.errback(result);
          } else {
            goog.log.finer(me.logger, rq_label + ' SUCCESS');
            df.callback(result);
          }
          me.s_request_tx = null;
        };
        me.r_no_++;
        rq_label = me.getLabel() + 'R' + me.r_no_;
        goog.log.finer(me.logger, rq_label + ' BEGIN');
        callback(tx, rq_label, resultCallback2);
        goog.log.finer(me.logger, rq_label + ' END');
        callback = null; // we don't call again.
      }
docs: create a new transaction and close for invoke in non-transaction context
  @param {Function} cb callback to process tx.