Or `session.store(source)` which could be:
```
def store(self, source):
    self.push(*source.dump(docid=self.docid))
```
so that push only ever deals with raw json and doesn't have to do any switching on argument types.