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)