Statement level is the lowest level of granularity to fail or succeed upon. If you have in your example 100 records in table A to update based upon some logic (e.g. from another table, from a custom ...
I've been in an argument with one of our devs that took an update statement with an inner join and made it a left join (because inner was missing some records somehow in the left table - tableB in ...