Refactor transfer to create or update transfer item on the fly

Use of a ternary would be acceptable if the long fragment of code was extracted into its own method and the primary branch was presented first.