When a DML operation occurs, Oracle first checks to ensure you have the appropriate permissions to perform this DML operaiton on this object. Assuming that you do, Oracle writes information to reverse the operation in the undo segments. Oracle also writes information to redo the operation in the Log Buffer. If you rollback the operation, the undo information is used to revert back to the time before the DML operation was started. If you commit the operation, Oracle flushes the information from the Log Buffer to the online redo log files. The commit is not complete until the information has been written to the online redo log files.
In the meantime, the data block containing the changed information is sitting in the Buffer Cache. This block is now considered "dirty" as its contents have changed. When Oracle performs a checkpoint, the dirty block is written to the tablespace's datafile.