The insertion outlined here does the following:
At each j, the part of the array before index j is sorted and after index j is not sorted.
So the insertion sort finds a suitable place for the new A[j] and inserts it there.
For example, at j = 4
and i = 3
if the array is
2 4 5 3 1 0
^
The array before element 3 is sorted.
1. So it checks that 3 is less than 5, hence copies 5 to array[i+1] (i+1 = 4).
2 4 5 5 1 0
2. Then it decrements i checks that 3 is less than 4, hence copies 4 to array[i+1] (i+1 = 3).
2 4 4 5 1 0
3. Then it checks that 3 is more than 2, hence stops and makes A[i+1] = key.
2 3 4 5 1 0