Sending the data to the client before you are sure that it was successfully stored in the database, you run the risk that the client will display information to the user that the server ultimately will disagree with eventually. You should consider on a case-by-case basis if the consequence of a user potentially seeing this "incorrect" information, is greater than the consequence of the user having to wait slightly longer.
Typically for transactional kinds of information, e.g. spending resources, sending a message or saving progress, it is a lot more important for the user to be assured that the information is actually true than it is to know the information 100 milliseconds sooner.
For fast-updating information that is quickly invalidated by something new, e.g. the position of a player that is moving around a world, the slower you get that information to the user, the less valuable it is (due to how frequently it changes). Also, the individual importance of each update is likely much smaller, and thus the consequence of it being incorrect is much lower. In some critical cases, every moment of unnecessary delay will make your client application feel less responsive and degrade the user experience.
See also: https://en.wikipedia.org/wiki/Client-side_prediction