Profiles can be updated

More-or-less copied from the previous `RestfulModel`-based implementation.
Given the conditional in the method, this seems out of date: it will sometimes create, but sometimes update.