There's a difference between a 'hard' promise and a promise with contingencies. A hard promise would be to say, "We'll stay at 21 and drayft you there if you're available." A softer promise with contingencies would be, "If we decide to stay at #21 and you're on the board, we will draft you there, but we're looking at other options, including trades that could affect our decision to draft you."
I think the Jazz do make the latter kind of promise, since it's easy to do it and doesn't paint them in a corner. They apparently promised to draft CJ Miles back in the day and took him in the 2nd round after they traded away a late 1st-round pick to move up for DWill.