Pre-calculating the normals, ways to do it? C++, OpenGL 4
how do I update the normals before I bind the model to be rendered
You never update the normals. They are calculated offline based on the surface, not based off of any view/model matrix. Normals represent the surface when you talk about calculating them. What you are talking about is strictly transforming them, which is the same as a vertex. The inputs stay the same, the outputs change relative to the camera view.
Your vertex shader should output a new normal every frame, by taking OutputNormal = normalMatrix*in_normal;
normalMatrix should be computed once and sent down. The normal matrix is simply the same as the model matrix (minus translation) if you have no non-uniform scaling (IE scaling is fine as long as it is equal across x,y and z). Otherwise the normal matrix is what you have, and should again be computed only once. So don't compute it if you don't need to.
FYI: The inverse of a 3D rotation matrix (no scaling applied to the model) ... inverse = transpose. So in the case of no scaling on your matrix. You are simply transposing the model matrix twice, which gives you the model matrix as the result anyway.