Trying to find defects in a design by just using a class diagram, without implementing the classes in code is like trying to find bugs in code without tests. -
So don't get me wrong, I am not saying it is completely impossible to find some defects (or "design smells"), but in total it is not very efficient.
So yes, one can look at the diagram and review it, but that will only allow one to fix the most obvious things, like bad class and method naming. But if there are "faults" in the design which really matter only the real code will demonstrate.
For example, since you mentioned it, let us take the SOLID principles:
S: if a class follows the "Single responsibility principle" depends heavily on what is happening inside it's methods, semantically. Something you cannot really determine from a class diagram (only guess by method naming, if you are lucky)
O: the OCP is not about having extension points in a class - it is about having the right extension points, the ones which are necessary to reuse a class later for certain scenarios without changing it. A class diagram can only tell you if you have extension points, and how they are named, but not if they are the correct ones required.
L: the LSP is about obeying contracts in derived classes. A class diagram may tell you the most obvious flaws like shadowing public attributes, but not if the semantics of the implementation of a method will violate the LSP
I: if two methods belong into the same interface, or if they should better be separated is something which usually shows up when someone really tries to provide different interface implementations - not at a class design stage, but, for example, when reusing a certain component.
D: dependency injection: a class diagram can tell which dependencies are going to be injected into the constructor of a class, but not if those are the right ones required to get the degree of decoupling which matters to the actual system.
So in short, class diagrams lack the description of the semantics of the code to which they belong, that is why their usage to find defects in the design is only very restricted.