code: function(rel, key, val, callback) {
      if (typeof key == 'function') {
        callback = key;
        key = val = undefined;
      }
  
      if (Array.isArray(rel)) {
        var txn = this._safeBatch();
        var args = [key, val];
        async.map(rel, naan.ecurry(txn.rel.update, args, [1, 2]), callback);
        return this._safeBatchCommit(txn);
      }
  
      var id = this._getId(rel);
  
      if (!this._isValidId(id)) {
        return callback(new Error("Invalid ID"));
      }
  
      var endpoint = util.format('%s/properties', this._relRoot(id));
      if (key) endpoint += '/' + key;
  
      var op = this.operation(endpoint, 'PUT', key ? val : rel.properties);
      this.call(op, function(err) {
        callback(err);
      });
    }
docs: Update the properties of a given relationship. Maps to
  PUT relationship/<id>/properties