Which container are you using to deploy your applications? If it is tomcat then the source code for doHead() method is not implemented to throw error. You can have a look at the source code of HttpServlet class HERE This should help you clear your doubt.
Not the servlet spec, but the HTTP spec. RFC 2616 (the HTTP 1.1 spec), Section 5.1.1 has this to say:
An origin server SHOULD return the status code 405 (Method Not Allowed) if the method is known by the origin server but not allowed for the requested resource, and 501 (Not Implemented) if the method is unrecognized or not implemented by the origin server. The methods GET and HEAD MUST be supported by all general-purpose servers. All other methods are OPTIONAL;