code: private NodeBuilder ensureParent()
      {
          if (parent == null)
          {
              parent = new NodeBuilder();
              parent.child = this;
          }
          if (parent.upperBound == null)
              parent.reset(EMPTY_BRANCH, upperBound, updateFunction, comparator);
          return parent;
      }
docs: already be initialised, and only aren't in the case where we are overflowing the original root node