I am so sorry, I didn't quite ask that right.... how do we know if the share solves/generates a block? i.e. how do we know when we generated a block.
Oh, this. Yes, it is on_submit_block, as you guessed by self:
on_submit_block(self, is_accepted, worker_name, block_header, block_hash, timestamp):
Share is sent to the bitcoind everytime its share difficulty>network difficulty and result is passed into this method. is_accepted indicates that the solution has been accepted and you "won" a block.