I did in the way I am not supposed to do.

in data() function I am checking If it is last child Of a valid parent item(non root item) & This parent still have some items than I am fetching some more data and inserting.

I know this is the stupid way as I am fetching & inserting data in data() function & I should not do it here, But did this at this point of of time nothing flashes in my mind.
May be I need to go through QTreeView source code to get some pointers to work on this feature.