code: def insertRow(self, row, item, parent):
          
          item.set_model(self)
          if parent.isValid():
              parentitem = parent.internalPointer()
          else:
              parentitem = self._root
          self.beginInsertRows(parent, row, row)
          item._parent = parentitem
          if parentitem:
              parentitem.childItems.insert(row, item)
          self.endInsertRows()
          return True
docs: Insert a single item before the given row in the child items of the parent specified.
  
          :param row: the index where the rows get inserted
          :type row: int
          :param item: the item to insert. When creating the item, make sure it's parent is None.
                       If not it will defeat the purpose of this function.
          :type item: :class:`TreeItem`
          :param parent: the parent
          :type parent: :class:`QtCore.QModelIndex`
          :returns: Returns true if the row is inserted; otherwise returns false.
          :rtype: bool
          :raises: None