Saya mengerti pertanyaan Anda seperti "apakah masing-masing pertanyaan itu sendiri merupakan operasi atom?". Maka jawabannya adalah "ya". Dua jawaban lainnya benar, ketika mereka mengatakan bahwa semua pernyataan Anda bersama-sama tidak atomik.
Atomisitas dalam basis data hanya berarti semua atau tidak. Itu tidak berarti kebenaran data. Pernyataan Anda berhasil atau tidak. Ini tidak ada hubungannya dengan join atau subquery. Satu pernyataan adalah satu pernyataan, tidak peduli apakah database Anda harus menggunakan tabel sementara di memori atau di disk atau tidak.
Transaksi hanya memberi tahu database Anda untuk memperlakukan beberapa pernyataan sebagai satu pernyataan. Ketika salah satu pernyataan gagal, semuanya dibatalkan.
Topik terkait yang penting di sini adalah tingkat isolasi . Anda mungkin ingin membaca tentang itu.
EDIT (untuk menjawab komentar):
Betul sekali. Selama itu adalah pernyataan yang valid dan tidak terjadi kegagalan daya atau alasan lain mengapa kueri bisa gagal, itu sedang dilakukan. Atomicity itu sendiri hanya menjamin bahwa pernyataan sedang/sedang dilakukan atau tidak. Ini menjamin kelengkapan dan data tidak rusak (menyebabkan operasi penulisan tidak selesai atau semacamnya). Ini tidak menjamin kebenaran data Anda. Diberikan kueri seperti INSERT INTO foo SELECT MAX(id) + 1 FROM bar;
Anda harus memastikan melalui pengaturan tingkat isolasi yang benar , agar Anda tidak mendapatkan pembacaan hantu atau apa pun.