Opa Vinicius, tudo bem?
Estamos falando de transações em relação a venda dos produtos? Sim, no banco de dados é a melhor forma até onde sei.
Em relação a vida útil do objeto, depende bastante do contexto. No geral, temos objetos que podem morrer ao final de um método, ao final de uma requisição ou até mesmo apenas no final da sessão do usuário e ainda podemos ter um objeto que fica vivo durante todo o ciclo de atividade da aplicação. Depende bastante.
No geral, sim, em sua maioria, desaparecem sozinhos por causa de um componente do interpretador da linguagem que gerencia a memória usada pela aplicação. Isso muda de linguagem para linguagem mas o funcionamento é semelhante, eu não sei ser exato em relação ao Python.