I issued a transaction with only one update DML statment. Then I looked up v$lock, found that the lock type is tm! It whould have been tx, because the lock's generater is a DML statment. Why?
create table a(b number);
insert into a values(1);
update a set b=2 where b=1;
select object_name,type from v$lock l,dba_objects o
where l.id1=o.ojbect_id and owner<>'SYS';