The main difference is :-
DML statements – when an exception is thrown during bulk DML processing, processing stops immediately and jumps to your catch block.
DML database methods – allows partial success of bulk DML operations. Records that fail processing can be inspected and possibly resubmitted if necessary.