However, when there's one guy who always keeps making mistakes and creating work for the rest of the team, even making the same mistake multiple times, then, in my opinion, some blame is warranted.
When solving a problem starts by blaming someone, it can distract the conversation and attention to become about personalities, positions, politics, arguing over perceptions, & interpretations, instead of the problem itself.
If, after something like the 5 why exercise, all roads keep leading to someone, one can probably look at having a positive supportive intervention.
If that person doesn't want it or feel they need it? That's more of a culture thing than just about one person.
One (of many) good things about collective code ownership is that this sort of blame game can't last very long.
1. I make it a rule to fire the overrated jerks that (ca|wo|do)n't shape up, with poetic prejudice. <Evil hand rubbing ensues> For the "indispensable" ones that cause too many problems, it's harder but possible. There's might be no such thing as an irreplaceable employee, the worse situation is losing good people that are pushed away. (Fan of Github / Rackspace cultural practices.)
Any environment that thinks code is too valuable to change, alter, throw away, simply hasn't got a fully oiled production line going from Design -> Code -> Build -> Use. If there is code too valuable to change because 'nobody understands it' the problem isn't the code, its the people reading it.
But the problem is, people are people, and these days people talk a lot of shit about each other. Its 'normal'. Blame culture infects all human activity, it has been scripted so.