You understand wrong.
Changes to data made within transaction ARE visible within that transaction, so your SELECT statements will see updated rows.
These changes however are not visible outside of the transaction, so if another user connects to the server at the same time, and queries these rows, he will see them in unaltered state.