How DML queries execute in MySQL InnoDB
Here's a broad answer to your broad question.

All DMLs and SELECTs always goes through the buffer_pool in InnoDB.  It is a cache of the blocks that compose the BTrees that compose the data (organized by the necessary PRIMARY KEY) and each secondary INDEX.

For DML (broadly):


Fetch a block, if not already in the buffer pool.
Modify whatever.
Mark the block "dirty".
Rinse and repeat.
Eventually (as a background task), the block will be written back to disk.  Meanwhile, it is in the cache so that other operations can avoid having to fetch it from disk.


Modifying a non-unique index involves the "Change buffer".  That is sort of a "delayed write" for such changes.

SELECTs:


Fetch a block (if not already in buffer pool).
Fetch row(s) out of that block.
Rinse and repeat.


Note: in both DML and SELECT, the discovery of where a row usually involves drilling down a BTree, which involves fetching nodes (blocks) of the BTree.  They, too, are cached (and tend to live a long time in the buffer pool).

If you want more details, start another Question with more specifics.