Row Migration and Row chaining represents the same problem.

When a new row is inserted and the block scheduled does not have enough space , the row is migrated to a new block(or set of contiguous) .Size db_block_size properly.

When a row is updated and there is not enough space to expand in a block , the row is migrated to a new block .Size pctfree properly for this kind of a problem.

You can solve chaining problem and that is why u see chained_cnt but row migration can only be solved by resizing db_block_size.

Take Care
GP