Uiua
Uiua is still developing very quickly, and this code uses the experimental tuples function, hence the initial directive.
# Experimental!
"7 6 4 2 1\n1 2 7 8 9\n9 7 6 2 1\n1 3 2 4 5\n8 6 4 4 1\n1 3 6 7 9"
⊜(⊜⋕⊸≠@\s)⊸≠@\n # Partition at \n, then at space, parse ints.
IsSorted ← +⊃(≍⇌⍆.|≍⍆.) # Compare with sorted array.
IsSmall ← /××⊃(>0|<4)⌵↘¯1-↻1. # Copy offset by 1, check diffs.
IsSafe ← ×⊃IsSmall IsSorted # Safe if Small steps and Ordered.
IsSafer ← ±/+≡IsSafe ⧅<-1⧻. # Choose 4 from 5, check again.
&p/+≡IsSafe . # Part1 : Is each row safe?
&p/+≡(±+⊃IsSafe IsSafer) # Part2 : Is it safe or safer?