We don't add a separate check in the "set" builder method in any of the builder code that I've ever seen. We just do the check once in the ctor. I'd prefer to keep this consistent with the rest of the code base and not repeat the check.