<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def insertRow(self, row, item, parent):
 """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 """

        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