Start_item in sequence

As I understand, the start_item is used to handshake with driver if it is ready to pull the next transaction.
So, when start_item is called, no transaction actually gets transferred to the driver.
The transaction gets passed only with finish_item.

So, what is the reason that transaction is passed in start_item method?

For example,

start_item(req)

In reply to verif_learner:

The sequence_item has to get put into specific sequencer context that connects it with a driver. That information is stored in the sequence_item.

You can always look at the code for start_item() to get a rough idea of what it does.