É teoricamente possível, mas eu não recomendaria:
Essencialmente, você tem um gatilho na tabela que chama uma UDF que se comunica com seu aplicativo Python de alguma forma.
Armadilhas incluem o que acontece se houver um erro?
E se bloquear? Tudo o que acontece dentro de um gatilho deve ser quase instantâneo.
E se estiver dentro de uma transação que é revertida?
Tenho certeza de que há muitos outros problemas nos quais não pensei também.
Uma maneira melhor, se possível, é fazer com que sua camada de acesso a dados notifique o restante do seu aplicativo. Se você está procurando quando um programa fora de seu controle modifica o banco de dados, pode estar sem sorte.
Outra maneira que é menos ideal, mas é melhor do que chamar outro programa de dentro de um gatilho, é definir algum tipo de tabela "LastModified" que é atualizada por gatilhos com gatilhos. Em seguida, no seu aplicativo, verifique se esse datetime é maior do que quando você verificou pela última vez.