Yes, it is much clearer now… You should actually take a look at GetIsoTrack in IsoTrack.cpp. After the import related if statement and before the for loop you should create a set of NERO_ISO_ITEMs tied to each other and as many of them as there are subdirs in your –sub parameter. If you want to support only one directory, then things get simpler.
For instance, if you specify –sub dir1/dir2/dir3, you should create 3 NERO_ISO_ITEMs and connect them as appropriate so that they form a tree. If you want to be extra careful, you may check if any of these entries already exist in the previously imported session (if any).
Once you have done all this, you should make sure that the CreateIsoItem in the for loop below appends its findings to the end of your tree hierarchy, not the root.