returns false if isNewRecord