What if we skip the slave by counter 1 when it failed at event 1 of a transaction which has events 2 and 3
Correct, skipping skips the transaction - not the statement - and that is why it is better to investigate the failure than blindly skipping. 

You should use pt-table-checksum and pt-table-sync to resolve drift after a skip since you will likely have diverged.