Permit upsert with all columns as keys

I have a table which has no columns that aren't keys:

species|name
cat|Lucky
dog|Lucky
cat|Tiddles
dog|Fido

and I'd like to use upsert:

table.upsert({'species':'cat','name':'Garfield'}, ['species','name'])
... which works well, the first time. But not the second.

So I check - in update - whether the number of keys is equal to the number of columns specified; at which point there's nothing to do and we return False.

Not sure if that's the right return value, mind.