That's still not going to resolve the ordering problem in general - rownum is defined at the level of the result of a select, which may be effectively random inside one value of date/time.
I thought about that. That's why I asked the original poster about the sorting order.
We can assign the rownum only on the sorted result set. In this case we can get what we want.

Using rowid for update. You are right. If we want to update another column in the table, then we must use rowid for update.

Tamil