One word which can be used in your context perfectly but has a much broader implication is ameliorate.
According to MariamMerriam-Webster:
to make (something, such as a problem) better, less painful, etc.
Ameliorate refers to not just a person's actions about also it also applies to things as well.
While it does make sense in the context: This person's charity does not ameliorate their greed.
It doesn't mean that the person, place, or thing ameliorating is permitted by society to do something wrong.