title: Attach with UpdatePivot for "Not Null" column
body: <p>Using bookshelfjs, I would like to add record to a join table that contains additional, not nullable column.</p>
  
  <p>For example, a users table and an accounts table would have a joining table of accounts_users.</p>
  
  <pre><code>var Account = Bookshelf.Model.extend({
    tableName: 'accounts'
  });
  
  var User = Bookshelf.Model.extend({
  
    tableName: 'users',
  
    accounts: function () {
      return this.belongsToMany(Account);
    }
  });
  </code></pre>
  
  <p>The join table also has a column "order" NOT NULL.</p>
  
  <pre><code>CREATE TABLE accounts_users
  (
    account_id integer NOT NULL,
    user_id integer NOT NULL,
    "order" integer NOT NULL,
    CONSTRAINT accounts_users_account_id_foreign FOREIGN KEY (account_id)
        REFERENCES accounts (id) MATCH SIMPLE
        ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT accounts_users_user_id_foreign FOREIGN KEY (user_id)
        REFERENCES users (id) MATCH SIMPLE
        ON UPDATE CASCADE ON DELETE CASCADE
  )
  </code></pre>
  
  <p>Is it possible to attach a record in Users to a record in Accounts, and set the order value at the same time?</p>
  
  <p>Each one can be done separately using:</p>
  
  <pre><code>user.related("accounts").attach(&lt;USER_ID&gt;);
  </code></pre>
  
  <p>and</p>
  
  <pre><code>user.related("accounts").updatePivot({order: 1}); // with WHERE clause.
  </code></pre>
  
  <p>Running each command separately will fail since the first one will not fulfill the NOT NULL restriction.  Is there a way to execute both commands together using bookshelf? It can be easily done using Knex.Raw but I would like to do it using bookshelf if possible.</p>