Hi, My guess is that the easiest way to accomplish that would be to insert the new row at the end of the table in the UI.
When you commit the new row it's written to the DB and the next execution of the query results in a different row order (i.e. if you have a sort order given).
As I said before, you can't put a row in the db at position x.
You need an attribute the db can use to order the rows upon. This is no easy task because you have to shift all rows (change an attribute) after the newly inserted one, or think about an algorithm which calculates the attribute for the new row (given the order attribute from the current row and the next row).
I agree 100% to Timo. If you do not have a "order by" clause in your select statement you can't predict the row order. It depends e. g. on the physical storage place of the record in the DB block and the access path of the optimizer.
If you need further assistance it would be helpfull to explain the use case more detailed (e.g. what's the idea behind it, why you do not have a sort criteria in the DB, ...)