Define "failed". If an update affects no records at all (the where clause doesn't match any records), is it a FAIL or is it a PASS? For me it is a PASS. A FAIL is when the database returns an error.
Personally I ALWAYS use the RaiseError database handle attribute, and enclose code that expectedly can fail inside an eval { }.