code: function(startNode, type, endNode, properties, callback) {
      if (typeof properties === 'function') {
        callback = properties;
        properties = null;
      }
  
      if (Array.isArray(startNode)) {
        var txn = this._safeBatch();
        var args = [ type, endNode, properties ];
        async.map(startNode, naan.ecurry(txn.rel.create, args, [1,2,3]), 
            function(err, rels) {
              if (!err && Array.isArray(endNode))
                return callback(err, _.flatten(rels));
              callback(err, rels);
            });
        return this._safeBatchCommit(txn);
      } else if (Array.isArray(endNode)) {
        var txn = this._safeBatch();
        var args = [ startNode, type, properties ];
        async.map(endNode, naan.ecurry(txn.rel.create, args, [0,1,3]), callback);
        return this._safeBatchCommit(txn);
      }
      
      var startNodeId = this._getId(startNode),
          endNodeId = this._getId(endNode);
  
      if (!this._isValidId(startNodeId) ||
          !this._isValidId(endNodeId)) {
        return callback(new Error("Invalid ID"));
      }
  
      var request = {
        to: this._location('node', endNodeId),
        type: type,
      };
  
      if (properties) {
        request['data'] = properties;
      }
  
      var endpoint = util.format('%s/relationships', this._nodeRoot(startNodeId));
      var op = this.operation(endpoint, 'POST', request);
      this.call(op, function(err, rel) {
        if (err) {
          callback(err);
        } else {
          callback(null, this._createRelationshipObject(rel));
        }
      });
    }
docs: Create a new relationship between two nodes. Maps to
  POST node/<startNodeId>/relationship