Right now - AFAIK - the only way to create a HSSFRow is by using HSSFSheet.createRow(). This will create a HSSFRow within the HSSFSheet. I could get much cleaner code in my case, if it were possible to create a new HSSFRow, fill it and later add it to the HSSFSheet.
Unfortunately HSSFRow needs a back reference to its containing Sheet (for storing the cell value records). POI would have to jump through hoops to get 'detached rows' to work. Please re-open this bug if you have a pretty compelling example of code that shows how much easier things would be with detached rows.