code: private void finishInsert(
                               InsertNodes       point,
                               InsertStack       stack,
                               Object            new1)
      {
          Object insertKey = new1;
          if (point.positionNode() != null)
          {
              GBSNode p = point.positionNode();
              int     ix = point.positionIndex();
              if (point.rightSide())
                  insertKey = p.insertByRightShift(ix, insertKey);
              else
                  insertKey = p.insertByLeftShift(ix, insertKey);
          }
  
          /* If the insert point is at the right-most slot in a full node         */
          /* then we migrate the new key into the fringe.                         */
          Object migrateKey = null;
          if (point.insertIndex() == point.insertNode().topMostIndex())
              migrateKey = insertKey;
          else                           /* Insert within existing node           */
              migrateKey =                 /* Which may migrate a key out of it     */
                                           point.insertNode().insertByRightShift(
                                                                                point.insertIndex(), insertKey);
          insertFringeMigrate(stack, point.insertNode(), migrateKey);
      }
docs: Do the write phase of the insert.
  
  <p>findInsert does all of the reading needed to find the insert point.
  finishInsert does all of the writing required to actually do the insert.
  It is called by either optimisticInsert or pessimisticInsert as the
  writing phase is the same regardless of the locking strategy.</p>
  
  @param point The insert point and position point.
  @param stack The InsertStack of nodes traversed.
  @param new1 The Object to be inserted.