In layman’s terms, the updates your program is doing are not actually saved in the database immediately. They are just stored temporarily in memory and COMMIT is what saves the changes in DB. As you’ve noticed, even if we don’t have COMMIT statement, the data is still saved at the end of the program. That’s because the system does it for us. If you have a simple program that, say, reads a file and fills in a Z table then you don’t have to add COMMIT. But, for example, if you have a program that performs multiple updates and after the first update you can only proceed with the next one after the first change have been committed to DB then, naturally, you have to add a COMMIT in between. There are other situations when it is needed.