If you take a look at the docs specifically under the Returns section you'll see that the $resource service will return:
A resource "class" object with methods for the default set of resource actions optionally extended with custom actions. The default set contains these actions:
{'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
It further states:
The actions save, remove and delete are available on it as methods with the $ prefix.
So $save, $remove, $delete are avaiable but no $update. This is why the service in the example has the line:
...
'update': { method: 'PUT'},
...
It's meant to extend these default set of actions so that $update will be available as a method on the objects and it will use the HTTP PUT method instead of GET/POST/DELETE like the others.
Note: the above answer was extracted from a previous question I answered but I've isolated the part you should focus on here