code: @UiThread
      public void notifyParentRangeInserted(int parentPositionStart, int itemCount) {
          int initialFlatParentPosition;
          if (parentPositionStart < mParentList.size() - itemCount) {
              initialFlatParentPosition = getFlatParentPosition(parentPositionStart);
          } else {
              initialFlatParentPosition = mFlatItemList.size();
          }
  
          int sizeChanged = 0;
          int flatParentPosition = initialFlatParentPosition;
          int changed;
          int parentPositionEnd = parentPositionStart + itemCount;
          for (int i = parentPositionStart; i < parentPositionEnd; i++) {
              P parent = mParentList.get(i);
              changed = addParentWrapper(flatParentPosition, parent);
              flatParentPosition += changed;
              sizeChanged += changed;
          }
  
          notifyItemRangeInserted(initialFlatParentPosition, sizeChanged);
      }
docs: Notify any registered observers that the currently reflected {@code itemCount}
  parents starting at {@code parentPositionStart} have been newly inserted.
  The parents previously located at {@code parentPositionStart} and beyond
  can now be found starting at position {@code parentPositionStart + itemCount}.
  <p>
  This is a structural change event. Representations of other existing items in the
  data set are still considered up to date and will not be rebound, though their positions
  may be altered.
  
  @param parentPositionStart Position of the first parent that was inserted, relative
  to the list of parents only.
  @param itemCount Number of items inserted
  
  @see #notifyParentInserted(int)