Um PDOStatement é retornado para cada consulta executada. Você poderá usar PDOStatement->rowCount() a qualquer momento em seu código (durante ou após uma transação e rollback/commit não importa). Cada objeto cuida de se manter.
A razão pela qual mysql_affected_rows tem essa nota de transação é porque ele está ciente apenas de um único recurso de conexão mysql. Isso significa que ao concluir a transação (commit/rollback) uma nova consulta foi enviada ao banco de dados, alterando assim qual resultado está sendo processado para o número de linhas afetadas.