En onunload no podés confiar, pero si tenés soporte para ignore_user_abort, podés verificar con connection_status si el usuario se desconecta y realizar lo que necesites del lado del servidor (En el manual hay un par de
ejemplos de esto y también
aquí)