Jelly, 8 7 bytes
‘;ṀỤḢṬ+
Try it online! or verify all test cases.
How it works
‘;ṀỤḢṬ+ Main link. Argument: A
‘ Increment all elements of A.
Ṁ Yield the maximum of A.
; Concatenate both results. Note that the appended maximum will be the
minimum of the resulting array if and only if all elements of A are equal.
Ụ Grade up; yield the indices of the resulting array, sorted by their
corresponding values in that array.
Ḣ Head; extract the first index, which is the index of the first occurrence
of the minimum. For an array of equal elements, this will be the index
of the appended maximum.
Ṭ Untruth; for index i, yield an array of i-1 zeroes, followed by a 1.
+ Add this array to A, incrementing the minimum or appending a 1.