An important property of transaction is atomicity.
The default mode is read commited. This prevents dirty reads. But we have problem of repeatable reads and phantom rows.
How is atomic rule ensured when using default (read commited) isolation mode?
Example- in tran1 I read value from table1. While tran1 is still running, I start tran2 and update the same value in table1. So tran1 has got stale value.
Read committed isolation mode does not prevent updates of the rows you have read in your transaction while your transaction is still open.
If you want to prevent this, then you'll need to set the isolation level to REPEATABLE READ (or SERIALIZABLE). Or you can set the READ_COMMITTED_SNAPSHOT option of your database to ON.