Du db.end() samtalet kommer att köa anslutningen för att stängas när SELECT har slutförts, så när du försöker göra den inre INSERT fråga, kommer databasanslutningen att ha stängts, därav felet PROTOCOL_ENQUEUE_AFTER_QUIT, eftersom du försöker köa ett nytt kommando efter att anslutningen stängts.
Beroende på hur du skapar anslutningen bör du antingen flytta din db.end() ringa in i återuppringningarna, eller inte ha en db.end() ring överhuvudtaget om anslutningen öppnas vid programstart.