In Oracle, the Undo records allow data that is being modified to be accessed.
Oracle uses row level locking to prevent two processes from trying to update the same data at the same time.
Only the rows being modified are locked.
This means that the rest of the table can still be modified while a row is being changed. It also means that the whole of the table including the data that is currently being modified can still be read.
This is covered elsewhere but the key is that the data will always be consistent with its state at the time that an operation began.