docs: function(obj, callback, error) {
        var that = this
        objs = (this.isArray(obj) ? obj : [obj]).map(function(o) {
          if (!o.key) {
            o.key = that.uuid()
          }
          return o
        }),
          ins = "INSERT OR REPLACE INTO " + this.record + " (value, timestamp, id) VALUES (?,?,?)",
          win = function() {
            if (callback) {
              that.lambda(callback).call(that, that.isArray(obj) ? objs : objs[0])
            }
          }, error = error || function() {}, insvals = [],
          ts = now()
  
          try {
            for (var i = 0, l = objs.length; i < l; i++) {
              insvals[i] = [JSON.stringify(objs[i]), ts, objs[i].key];
            }
          } catch (e) {
            fail(e)
            throw e;
          }
  
        that.db.transaction(function(t) {
          for (var i = 0, l = objs.length; i < l; i++)
            t.executeSql(ins, insvals[i])
        }, function(e, i) {
          fail(e, i)
        }, win)
  
        return this
      }