Controlar la sesión desde la BBDD no es buena idea precisamente por lo que estás contando, si el usuario no hace lo que debe, la base de datos queda desactualizada.
Puedes probar a controlar el evento de cierre de sesión con
http://stackoverflow.com/questions/1...h-jsp-servlets
o el método finallize().
Personalmente, a menos que hubiera una muy buena razón, no mezclaría sesión y BBDD.