The 100 req/sec come from the simple fact that postgres defaults to doing your writes safely and when you do every request in a single transaction without parallelism thats about the speed of a normal disk (when you do them in parallel the synchronous writes needed will be batched together, so you can get significantly higher tps).
You can optionally say that you don't need that (SET synchronous_commit = off in the session or configuration) which will then only sync commits in a background process. Which gives you a data-loss window from < 1s in default settings. Note that *only* the last transactions will be lost, *no* old data can be corrupted by that.
If you need even less guarantees you can say fsync=off.