Save the resource

        It's better to use the create, updated & delete methods intsead of
        modifying an instance and calling save, because then we call the
        can_create, can_update & can_delete methods to check whether a user
        is permitted to make the changes.

def _save(self):
        """
        Save the resource

        It's better to use the create, updated & delete methods intsead of
        modifying an instance and calling save, because then we call the
        can_create, can_update & can_delete methods to check whether a user
        is permitted to make the changes.
        """
        yield self.validate()

        db = self.db_client()
        saved = yield db.save_doc(self._resource)

        # Allow couch to create Document IDs
        if '_id' not in self._resource:
            self._resource['_id'] = saved['id']