Wouldn't you save an old version so you can take out the faulty code in the future? If users complain they can offer monetary compensation or offer to fix the code or just shut up.
Sometimes it is very low-risk, i.e. you know for sure that it won't impact many users or that it is easy to revert if necessary.
Sometimes it has a fundamental impact on your codebase, and if you build on top of that then it will be very hard to "just revert".
It's the job of the maintainer to decide what kind of risk they are willing to take. The thing is that many contributors don't understand that and put a lot of pressure to force their contribution in. And that's how you end up burning out the maintainers who try to be nice.