One more thing you could do, is to load the PSR twice, one in a separate DS and the other on your original DW. In your DS, when you are going to access the nested report, modify a column's value first. It's going to be like this:
//If there's no row in the nested report this line below will insert one otherwise this will replace the column's value in row 1.
ds.object.nestedreport[i].object.columnX[1] = 1
//Choose a column that supposed to contain a value (not null) when the row was loaded from PSR.
If IsNull(ds.object.nestedreport[i].object.columnY[1]) Then
// Then this is a newly inserted row and this means the nested report was empty.
End If
The above is kind of ugly solution but I think would work in checking if the nested report contains a row when first loaded.