Correct, you can perform multiple queries while in a transaction. This is actually the point of using transactions.

In PDO, from the documentation, as long as you have started a transaction by calling PDO::beginTransaction(), you may perform multiple queries, and the changes are not seen by anyone else until you are finished (i.e. by calling PDO::commit()).

You're not limited to making updates in a transaction; you can also issue complex queries to extract data, and possibly use that information to build up more updates and queries; while the transaction is active, you are guaranteed that no one else can make changes while you are in the middle of your work. For further reading on transactions, refer to the documentation provided by your database server.

Using InnoDB engine in MySQL, specifically, you have row-level granularity, which means only rows are locked, not the entire table like in (older) MyISAM engine.

Email codedump link for Multiple transactions on a single InnoDB table possible?