Selecteos( end of search) comes only if there is at least 1 record in the select query and complete selection is processed for all records selected . So if u break in selectdo , it will not execute selecteos statements .
So commit transaction in selecteos will gets executed only in the condition specified where the commit after endselect will always be executed.
In order to improve the performance generally the commit transaction is done after updating about 50 records . Also it depends on where u put db.retry.point also and whether you wish to abort.transaction based on some conditions or not .