Hi,
when you say that the client connection is dropped, you are talking about an abnormal termination? If yes, depending on the cause of that termination you will get "zombie" connections on the server, which means that any uncommitted transactions will stay that way, until the connection if closed on the server (in this case a KILL statement would probably be the best approach) .
However most of the times (in that odd scenario - like force closing the SQL client) I've seen the server also closing the connection on it's side.
If, however, you do a regular disconnect from the server, it is expected to have a rollback on all uncommitted transactions. Be also aware that depending on the volume of rollback transactions that the server needs to process, it may take a while to actually rollback, and maybe that is giving you the impression that it is not working?