On the issues of blame: It is important to differentiate when the blame and discipline (positive and negative forms) are appropriate.
If you find a worker doing something wrong (in the lower part of the safety iceberg), then blame and discipline may be appropriate once you figure out why the mistake is made.
However, if you find out about the error via a near miss report or because of an accident/loss, then discipline is very likely not appropriate, because there is most likely a systemic issue to fix (which will mean fixing a management system) and very likely many workers are doing the same thing. Discipline in such cases will drive near miss reporting down and this will hurt your accident prevention effort more than the gains (normally very short term) from disciplining the one example of the whole that are likely doing the same thing.
Are there exceptions to the rules above? I have seen a few. The way we decided was to understand the effect on near miss reporting. For instance, at one refinery (US) the union would not let the company fire or move someone who was repeatedly caught doing a job wrong (and sometimes unsafely). Even the local union wanted the person gone because he was a threat to other workers, but the national union blocked them. The only out was to wait for the next minor accident caused by the worker… then the contract allowed for the proper action to be taken and the national union could not block the move out. In this case, disciplining (personal blame) did not hurt the near miss reporting.
Getting tons of near misses is one (perhaps the most) powerful tool to learning about and preventing losses (accidents).