Your problem stems from the fact that you're working with a 2D repeat region. These types of tables were designed to "auto-populate" their number of rows based on the data being dumped into them. Although we can manually add a blank row to the top or bottom of one of these tables, Creo has an issue with doing it automatically. It will generate the row, but it will throw an error back at us because it wants to try and auto-populate that row with data, or append something to the repeat region.
You can try to bracket the ADD_DRW_TABLE_ROW line within BEGIN_CATCH_ERROR and END_CATCH_ERROR statements, but I don't think the error catching will work for this scenario. If it does, let us know.
The best way around this is to manually add a blank row to the end of your saved repeat region table. As you found out, if a row already exists, Creo won't error out. Most people will set that blank row to a very small row height, making it look like a double line rather than a table row. Once it's there, the repeat reqion area will continue to work as designed, and then the ADD_DRW_TABLE_ROW command will work without a hitch.