It would be nice to have an atomic modify-and-return feature that could do either an update or a remove. This could be used to support queue-like features by either marking jobs as 'in-progress' or simply removing them.
For maximum flexibility we should be able return either the original or the updated version based on an optional parameter.